// 163 AJAX Tab 
// update 2006.10.18
// 增加鼠标延迟感应特性。
// update 2006.10.8
// A 标签 href 属性将保持原有HTML功能。增加urn属性为AJAX Load 路径。
// update 2006.10.11
// 修正IE5.0 undefined 未定义错误，增加脚本错误屏蔽

var CookieTool = function() {
};

CookieTool.prototype = {
	setCookie : function(c_name, value, expiredays) {
		var exdate = new Date();
		exdate.setDate(exdate.getDate() + expiredays);
		document.cookie = c_name
				+ "="
				+ escape(value)
				+ ((expiredays == null) ? "" : "; expires="
						+ exdate.toUTCString());
		return this;
	},
	getCookie : function(c_name) {
		if (document.cookie.length > 0) {
			var c_start = document.cookie.indexOf(c_name + "=")
			if (c_start != -1) {
				c_start = c_start + c_name.length + 1
				var c_end = document.cookie.indexOf(";", c_start)
				if (c_end == -1) {
					c_end = document.cookie.length
				}
				return unescape(document.cookie.substring(c_start, c_end))
			}
		}
		return "";
	}
}

var Li=new Object();



function IsChild(cNode, pNode) {
	while (cNode != null) {
		cNode = cNode.parentNode;
		if (cNode == pNode)
			return true;
	}
	return false;
}

var ajccache = new Object();
var waitInterval;
var tempref;
var MouseDelayTime = 150;// 鼠标感应延迟300毫秒
function getTBprefixName(str, sta) {
	if (str.indexOf("active") != -1 || str.indexOf("normal") != -1)
		str = str.substr(6);
	else if (str.indexOf("over") != -1)
		str = str.substr(4);
	else
		str = "";
	return sta + str;
}
function startajaxtabs() {
	for (var i = 0; i < arguments.length; i++) {
		var ulobj = document.getElementById(arguments[i]);
		var ulist = ulobj.getElementsByTagName("li");
		for (var j = 0; j < ulist.length; j++) {
			var thelist = ulist[j];
			if (thelist.parentNode.parentNode != ulobj)
				continue;// 只有第一层li有效 fixed 2006.9.29
			var ulistlink = thelist.getElementsByTagName("a")[0];
			var ulistlinkurl = ulistlink.getAttribute("urn");
			var ulistlinktarget = ulistlink.getAttribute("rel");
			thelist.setActive = function(bactive) {
				if (bactive) {
					this.status = "active";
					this.className = getTBprefixName(this.className, "active");
				} else {
					this.status = "normal";
					this.className = getTBprefixName(this.className, "normal");
				}
			}
			thelist.LoadTab = function() {
				this.setActive(true);
				this.parentNode.parentNode.activetab.setActive(false);
				this.parentNode.parentNode.activetab = this;
				var ulistlink = this.getElementsByTagName("a")[0];
				loadAJAXTab(ulistlink.getAttribute("urn"), ulistlink
						.getAttribute("rel"));
			}
			thelist.onmouseover = function(aEvent) {
				var myEvent = window.event ? window.event : aEvent;
				var fm = myEvent.fromElement;
				if (IsChild(fm, this) || fm == this)
					return;// 过滤子元素event
				if (this.status == "active")
					return;
				tempref = this;
				clearTimeout(waitInterval);
				waitInterval = window.setTimeout("tempref.LoadTab();",
						MouseDelayTime);
			}

			thelist.onmouseout = function(aEvent) {
				var myEvent = window.event ? window.event : aEvent;
				var em = myEvent.toElement;
				if (IsChild(em, this) || em == this)
					return; // 过滤子元素event
				if (this.status == "active")
					return;
				clearTimeout(waitInterval);
			}

			if (ulistlinkurl.indexOf("#default") != -1) {
				thelist.setActive(true);
				ulobj.activetab = thelist;
				ajccache[ulistlinkurl] = getElement(ulistlinktarget).innerHTML;
			} else {
				thelist.setActive(false);
			}

		}
		if (ulobj.activetab == null)
			ulobj.activetab = ulist[0];
	}
}

function getXmlhttp() {
	var http_request;

	if (window.XMLHttpRequest) {
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType("text/xml");
		}
	} else if (window.ActiveXObject) {
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
			}
		}
	}
	if (!http_request) {
		window.alert("can't create XMLHttpRequest object.");
		return null;
	}
	return http_request;
}

function loadAJAXTab(url, contentid) {
	var ocontent = getElement(contentid);
	if (ajccache[url] == null) {
		var xhttp = getXmlhttp();
		xhttp.onreadystatechange = function() {
			if (xhttp.readyState == 4
					&& (xhttp.status == 200 || window.location.href
							.indexOf("http") == -1)) {
				ocontent.innerHTML = xhttp.responseText;
				ajccache[url] = ocontent.innerHTML;
			}
		}
		xhttp.open("GET", url, true);
		xhttp.send(null);
	} else {
		ocontent.innerHTML = ajccache[url];
	}
}
window.onerror = function() {
	return true
}